python memory allocation